package com.zhangxin.aiInterview.manager.work_flow.ai_tec_interviewer.api;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import cn.hutool.json.JSONObject;
import org.springframework.stereotype.Service;

import static com.zhangxin.aiInterview.manager.work_flow.ai_tec_interviewer.constants.CozeConstants.TOKEN;

/**
 * 查询对话状
 * status为completed表示当前对话已完成，可以查询具体对话信息了
 */
@Service
public class CheckChatStatus {

    /**
     * 查询对话状态
     *
     * @param conversationId 会话id
     * @param chatId         对话id
     * @return 是否完成
     */
    public boolean isCompleted(String conversationId, String chatId) {
        String url = "https://api.coze.cn/v3/chat/retrieve?chat_id=" + chatId + "&conversation_id=" + conversationId;

        HttpResponse response = HttpRequest.get(url)
                .header("Authorization", TOKEN)
                .header("Content-Type", "application/json")
                // 增加超时设置（单位：毫秒）
                .timeout(30000) // 设置整体超时时间（30秒）
                .setConnectionTimeout(8000) // 设置连接超时时间（20秒）
                .setReadTimeout(20000) // 设置读取超时时间（10秒）
                .execute();

        JSONObject result = JSONUtil.parseObj(response.body());
        String status = result.getJSONObject("data").getStr("status");

        return "completed".equals(status);
    }
}
